const geturl = () => {
	if (uni.getSystemInfoSync().platform !== "devtools") {
		// 线上环境
		const BASE_URL = "http://localhost:8080/elearn_app";
		return BASE_URL

	} else {
		// 开发环境
		const BASE_URL = "http://localhost:8080/elearn_app";
		return BASE_URL
	}
}
export const apiRequest = (options) => {

	//传入的options是一个json对象

	return new Promise((resolve, reject) => {

		// 添加登录验证
		let token = uni.getStorageSync("token");

		var header = {
			"content-type": "application/json"
		};
		if (token != undefined && token != '') {
			header['satoken'] = token;
		}

		// 设置请求loading动画
		uni.showLoading({
			title: "加载中..."
		})
		let BASE_URL = geturl();
		// 发送请求
		uni.request({
			url: BASE_URL + options.url,
			method: options.methods || "GET",
			data: options.data || {},
			dataType: options.dataType || "json",
			header: header,
			// 请求成功回调
			success: (res) => {
				// console.log(res);//打印返回结果
				// 此处设置请求成功返回的状态码，并设置拦截其他状态码，统一给出响应提示  statusCode
				if (res.statusCode == 200) {

					switch (res.data.code) {
						case 200:
							console.log("成功");
							uni.hideLoading();
							resolve(res.data)
							break;
						case 401:
							console.log("失败");
							uni.hideLoading();
							uni.showToast({
								icon: "none",
								title: "请先登录"
							})
							break;
						case 101:
							uni.hideLoading();
							console.log("请登录");
							break;
						default:
							uni.showToast({
								icon: 'none',
								title: '服务器出错了'
							})
							break;
					}

					// 请求成功隐藏loading动画

				} else {
					//返回其他类型的状态码
					let title = res.statusCode.toString()
					uni.hideLoading();
					uni.showToast({
						icon: "none",
						title: title,
						duration: 2000
					})
					console.log(res.statusCode);
				}
			},

			// 请求失败回调
			fail: (err) => {

				uni.hideLoading();
				console.log(err, "错误信息");
				if (err.errMsg == "request:fail timeout") {
					uni.showToast({
						icon: "none",
						title: "网络请求超时,请重试！",
						duration: 2000
					});
					return
				}
				uni.showToast({
					icon: "none",
					title: "网络连接失败,请重试！",
					duration: 2000
				})
				reject(err)
			}
		})
	})
}